ראית פעם משהו כזה ושאלת את עצמך למה זה לא סתם משתנה? קרא את המדריך הזה.
נתנאל אדרי הפנה את תשומת לִבי לשאלה הזו לפני כמה ימים. הוא אמר:
למה שלא יהיה משתנה או קבוע עם הערך הזה?
שלא יהיה פשוט איזה const Version = 123;, או לפחות $version = 567;? אחרי שעברנו על קוד המקור של Yii Framework הבטחתי לו תשובה, והיא ממש פשוטה:
אי אפשר להכניס קבוע לאינטרפייס.
יכול להיות שהמשפט הזה נשמע לא כל כך מובן למי שלא עובד עם OOP.
אם אתה כן עובד אם OOP, דמיין לעצמך שיש לך מערכת כלשהי (phpBB 3.1.0 למשל). אתה מחליט לפתח גרסה phpbb 3.1.1 ורוצה שתהיה לה תאימות עם הגרסה הקודמת.
המחלקה הראשית במערכת שלך נקראת PHPBB. אתה יוצר אינטרפייס כדי שיהיה לך קל לשמור על תאימות בין גרסאות שונות של המחלקה, בעיקר כשיש לך כמה מחלקות שונות מהסוג הזה - אחת לאתר אחד ושנייה שעובדת רק דרך שורת הפקודה.
בתור public היה ניתן לשנות אותו מחוץ למחלקה בטעות, או לעשות אותו private ובכל זאת לכתוב מתודה שתחזיר את הערך שלו. כך שאם אתה עובד עם מערכת גדולה, גרסאות שונות שלה שרצות בתנאים שונים או פשוט מתכוון לאפשר להרחיב את המחלקה - תשתמש במתודות הרשומות בתוך אינטרפייסים כדי להחזיר ערכים קבועים.
intval02/10/2011 00:23
כשזה אחד ממשתני המחלקה - אז const.
define היא פונקציה ואי-אפשר לבצע פונקציה בזמן הגדרת המחלקה, אלה רק בזמן ריצה
ספר חינם על MVC
שאתה הולך להוריד כי אם אתה רוצה ללמוד על ארגון קוד יעיל ומודרני באתרים כמו זה או פייסבוק או כי כולם אוהבים להוריד דברים איכותיים בחינם מהאינטרנט
האתר ב-readonly
תודה לכל מי שתרם, ענה, שאל, כתב, לימד ועזר במשך השנים
orelbey, splash, raslin, cayce, iiddaannyy, michael, kingyes, ilikeme, itamarhadad, iosolidar, jbstyle
- alex@הדומיין הזה
תגובות לכתבה:
קבוע לא עושים עם define?
כשזה אחד ממשתני המחלקה - אז const.
define היא פונקציה ואי-אפשר לבצע פונקציה בזמן הגדרת המחלקה, אלה רק בזמן ריצה